複数のGitHubアカウントを同一マシンで使い分ける方法(フォルダごとのリモート紐づけ設定)
こんちには。
データ事業本部 インテグレーション部 機械学習チームの中村( @nokomoro3 )です。
今回は小ネタで複数のGitHubアカウントがあって、それらを同一マシンからフォルダごとに別々のアカウントをリモートとして紐づける方法をご紹介します。
使用環境
使用環境は以下の通りです。
- OS: Windows 10 (WSLではありません)
- Git for Windows
なお、credential.helper
は manager
となっており、資格情報マネージャを使用する設定となっています。
git config --system credential.helper
# manager
事前準備
2つのGitHubアカウントにそれぞれPrivateなgitレポジトリを作成しておきます。
https://github.com/account-a/sample-repo-a
https://github.com/account-b/sample-repo-b
clone時にアカウントを明示的に指定する
account-a側
clone字に紐づける方法としては以下のように アカウント名@
を付けてcloneすればOKです。
git clone https://account-a@github.com/{ネームスペース名}/{レポジトリ名}
今回の例では account-a
の中にサンプルレポジトリを作成しているため、以下のように account-a
が2回登場する形となりますが、account-a
に別のネームスペースへの権限がある場合は、下記に限らないです。
git clone https://account-a@github.com/account-a/sample-repo-a.git
ログインしたことがなければ以下のようなダイアログが表示されますので、ブラウザ側でログイン等を行います。
このとき、既に account-b
側でGitHubにログイン済みのブラウザでリンクを開くと以下のようなエラーとなりうまく行きませんのでご注意ください。
Cloning into 'sample-repo-a'...
remote: Repository not found.
fatal: repository 'https://github.com/account-a/sample-repo-a.git/' not found
その場合は一旦ブラウザ側でGitHubからサインアウトするなどをお試しください。
account-b側
account-b側も特に変わらずで、以下のように アカウント名@
を付けてcloneすればOKです。
git clone https://account-b@github.com/account-b/sample-repo-b.git
後からアカウントに紐づけする
cloneした後に、後から特定のアカウントに紐づけしたい場合もあると思います。
git remote get-url origin
# https://github.com/account-a/sample-repo-a.git
その場合は set-url
で アカウント名@
を付けた形に変更すればOKです。
git remote set-url origin https://account-a@github.com/account-a/sample-repo-a.git
まとめ
いかがでしたでしょうか。本記事がgit使用時のご参考になれば幸いです。